package com.swn.common.base;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.swn.common.util.DbHelper;
import com.swn.common.util.PageListData;

/**
 * 基础服务层，封装了一些常用方法
 * 其他服务层可继承
 * @author taozhaocai
 * @Date 2017年6月29日  下午4:58:35
 * @Note <这里是该类的使用注意事项>
 * 修改日期  修改人  修改内容
 * <多次修改需另起一行>
 * @company 济南舒卫能生物技术有限公司
 */

@Service("baseService")
public class BaseService {
	
	@Autowired
	DbHelper dbHelper;

	
	
	/**
	 * 根据查询条件获取分页列表
	 * 
	 * @param pageListData
	 * @param sql
	 * @param queryMap
	 * @return
	 * @throws Exception List<Map<String,Object>>
	 *
	 * @Author Administrator
	 * @Date 2017年6月29日 下午4:58:24 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public List<Map<String, Object>> queryPageMapList(PageListData pageListData,String sql,Map<String, Object> queryMap) throws Exception{
		return dbHelper.queryPageMapList(pageListData, sql.toString(),queryMap);
	}
	
	
	
	/**
	 * 保存一条记录
	 * 
	 * @param paramMap
	 * @param tableName
	 * @return int
	 *
	 * @Author taozhaocai
	 * @Date 2017年6月29日 下午4:57:57 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public int saveMap(Map<String, Object> paramMap, String tableName)  {
		return dbHelper.saveMap(paramMap, tableName);
	}



	/**
	 * 更新一条记录
	 * 
	 * @param paramMap
	 * @return int
	 *
	 * @Author Administrator
	 * @Date 2017年6月29日 下午4:59:27 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public int saveOrUpdate(Map<String, Object> paramMap, String tableName){
		//更新或插入：有则更新，无则插入（更新时根据主键更新）
		//调用dbHelper的更新或者插入方法
		return dbHelper.saveOrUpdate(paramMap,tableName);
	}



	public int update(Map<String, Object> paramMap,String tableName) {
			return dbHelper.updateMap(paramMap, tableName);
	}


	/**
	 * 根据主键查询
	 * 
	 * @param id
	 * @param tableName
	 * @return Map<String,Object>
	 *
	 * @Author Administrator
	 * @Date 2017年6月29日 下午5:03:14 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public Map<String, Object> queryMapById(String id,String tableName) {
		// TODO Auto-generated method stub
		Map<String, Object> keyMap = new HashMap<>();
		keyMap.put("id", id);
		return dbHelper.queryMapById(keyMap, tableName);
	}

	/**
	 * 删除一条记录
	 * 
	 * @param id
	 * @param tableName
	 * @return int
	 *
	 * @Author Administrator
	 * @Date 2017年6月29日 下午5:03:45 
	 * @Note <这里是方法的备注>
	 * 修改日期  修改人  修改内容
	 */
	public int delete(String id,String tableName) {
		Map<String, Object> keyMap = new HashMap<>();
		keyMap.put("id", id);
		int delete = dbHelper.delete(keyMap, tableName);
	    return delete;
	}

}
